home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / rbbs_pc / 173bmrg.zip / CSUB1028.MRG < prev    next >
Text File  |  1990-10-28  |  14KB  |  304 lines

  1. * ------------[ BLED merge (c) Ken Goosens ]-------------
  2. * Merge this against 17.3A\CNFG-SUB.BAS to produce 17.3B\CNFG-SUB.BAS
  3. * 17.3A\CNFG-SUB.BAS:  Date 8-26-1990  Size 103388 bytes
  4. * ------------[ Created 10-28-1990 12:00:01 ]------------
  5. * REPLACING old line(s) by new
  6. ' $linesize:132
  7. * ------[ first line different ]------
  8. ' $title: 'CNFG-SUB.BAS 17.3B, Copyright 1987-90 by D. Thomas Mack'  ' KG102201
  9. '  Copyright 1990 by D. Thomas Mack, all rights reserved.
  10. '  Name ...............: CNFG-SUB.BAS
  11. '  First Released .....: February 11, 1990
  12. '  Subsequent Releases.: August 26, 1990, October 28, 1990
  13. '  Copyright ..........: 1987-90
  14. '  Purpose.............: The Remote Bulletin Board System for the IBM PC,
  15. '                        RBBS-PC, configuration program -- CONFIG.BAS
  16. '                        utilizes a lot of menus and string space.
  17. '                        These are incorporated within CNFG-SUB.BAS as a
  18. '                        seperately callable subroutines in order to free
  19. '                        up as much code as possible within the 64K code
  20. '                        segment used by CONFIG.BAS.
  21. '  Parameters..........: Most parameters are passed via a COMMON statement.
  22. '
  23. ' Subroutine  Line      Function of Subroutine
  24. '    Name    Number
  25. ' ALLCAPS    61212+     Captialize a string
  26. ' ANSIDECODE 62040+     Convert ANSI strings into english text expressions
  27. ' ANYINTEGER 61450      Prompt for any integer
  28. ' ANYNUMBER  61400      Prompt for any number
  29. ' ASKRO      61100      Ask a question on a specific row
  30. ' ASKUPOS    61300      Ask for identifying field in USERS record
  31. ' BRKFNAME   61830      Break file name in drive/path, prefix, extension
  32. ' CHKFMSDIR  61700      Check FMS directory for valid structure
  33. ' CHKPERSDIR 61755      Check Personal directory format
  34. ' CNFGINIT   60385      Initialize CONFIG's constants
  35. ' COLORCODE  62040+     Convert response into ANSI-meaningful strings
  36. ' DISPLAY    12190      Display the CONFIG menu pages
  37. ' FINDFILE   61600      Determine whether a file exists
  38. ' FINDLAST   61850      Find last occurence of a character in a string
  39. ' GETANSI    62000      Prompt for ANSI colors to be used
  40. ' GETASCII   61810      Get any character by character or ascii value
  41. ' GETCOLOR   61950      Process request for setting color
  42. ' GETINIT    61110      Get answers that are integers
  43. ' GETNUMYN   61150      Get TRUE/FALSE answer to a YES/NO question
  44. ' GETYESNO   61200      Ask a question with a "yes" or "no" response
  45. ' HANDERR    61775+     Handle error checking for FMS directories
  46. ' MMINTEGER  61500      Prompt for integer with min and a max
  47. ' NETTYPE    60382      Prompt for supported network types
  48. ' REMOVE     61800      Remove characters from a string
  49. ' SECURE     61860      Allow commands and their security level to be changed
  50. ' SELMODEM   62100      Select modem to set modem strings
  51. ' TRIMTRAIL  61840      Remove trailing characters from a string
  52. '
  53. '  $INCLUDE: 'CNFG-VAR.BAS'
  54. '
  55. '  $SUBTITLE: 'DISPLAY - subroutine to display CONFIG's menus'
  56. '  $PAGE
  57. '
  58. '  SUBROUTINE NAME    --  DISPLAY
  59. '
  60. '  INPUT PARAMETERS   --  PARAMETER        DESCRIPTION
  61. '                         IX = 0           DISPLAY THE CHOICE OF MENUS
  62. '                         IX = -1          RE-READ THE INPUT (INVALID REQUEST)
  63. '                         IX > 0           DISPLAY THE APPROPRIATE PAGE
  64. '
  65. '  OUTPUT PARAMETERS  --  HJ$              OPTION SELECTED
  66. '                         IPAGE            MENU PAGE CONTAINING OPTION
  67. '                         ILOOKUP          INDEX (1 TO 20) OF OPTION SELECTED
  68. '
  69. '  SUBROUTINE PURPOSE --  TO DISPLAY CONFIG'S MENUS AND REQUEST OPTION
  70. '
  71.       SUB DISPLAY STATIC
  72. '
  73. ' *  DISPLAY CONFIG'S MAIN FUNCTION KEY MENU
  74. '
  75.       IF IX > 0 THEN _
  76.          GOTO 12320
  77.       IF IX = -1 THEN _
  78.          GOTO 12590
  79. * REPLACING old line(s) by new
  80. 60385 SUB CNFGINIT STATIC
  81. '
  82. ' * INITALIZE ALL VARIABLES IF A .DEF FILE DOESN'T AREADY EXIST
  83. '
  84.       D$ = DD$
  85.       DRV$ = LEFT$(D$,1)
  86.       FALSE                      = 0
  87.       TRUE                       = NOT FALSE
  88.       SYSOP.SECURITY.LEVEL       = 10
  89.       ACT.MNTHS.B4.DELETING      = 1
  90.       ACTIVE.BULLETINS           = 6
  91.       ADD.DIR.SECURITY           = SYSOP.SECURITY.LEVEL
  92.       ALLOW.CALLER.TURBO         = 6
  93.       ALTDIR.EXTENSION$          = ""
  94.       ALWAYS.STREW.TO$           = ""
  95.       ANS.MENU$                  = D$ + "MENUA"
  96.       ASK.EXTENDED.DESC          = SYSOP.SECURITY.LEVEL
  97.       ASK.IDENTITY               = FALSE
  98.       AUTO.ADD.SECURITY          = 5
  99.       AUTO.UPGRADE.SEC           = SYSOP.SECURITY.LEVEL
  100.       AUTOPAGE.DEF$              = D$ + "AUTOPAGE.DEF"
  101.       BG                         = 0
  102.       BORDER                     = 0
  103.       BUFFER.SIZE                = 128
  104.       BULLETIN.MENU$             = "BULLET"
  105.       BULLETIN.PREFIX$           = "BULLET"
  106.       BULLETINS.OPTIONAL         = TRUE
  107.       C$                         = ""
  108.       CALLER.BKGRD               = 0
  109.       CALLERS.FILE$              = D$ + "CALLERS"
  110.       SEC.KILL.ANY               = SYSOP.SECURITY.LEVEL
  111.       COM.PORT$                  = "COM1"
  112.       COMMANDS.BETWEEN.RINGS     = FALSE
  113.       COMMANDS.IN.PROMPT         = TRUE
  114.       COMMENTS.AS.MESSAGES       = FALSE
  115.       COMMENTS.FILE$             = D$ + "COMMENTS"
  116.       COMPRESSED.EXT$            = ".ARC.PAK"
  117.       COMPUTER.TYPE              = 0
  118.       CONFERENCE.MENU$           = D$ + "CONFENCE"
  119.       CONFERENCE.VIEWER.SEC.LVL  = 0
  120.       CONFMAIL.LIST$             = D$ + "CONFMAIL.DEF"
  121. * ------[ first line different ]------
  122.       CONFIG.VERSION$            = "Version 17.3B"                   ' KG102201
  123.       DEFAULT.CATEGORY.CODE$     = "UNC"
  124.       DAYS.IN.SUBSCRIPTION.PERIOD = 365
  125.       DAYS.TO.WARN               = 60
  126.       DIR.CATEGORY.FILE$         = D$ + "DIR.CAT"
  127.       DIRECTORY.PREFIX$          = "DIR"
  128.       DEFAULT.ECHOER$            = "R"
  129.       DEFAULT.LINE.ACK$          = ""
  130.       DEFAULT.SECURITY.LEVEL     = 5
  131.       DIRECTORY.EXTENTION$       = "DIR"
  132.       DIRECTORY.PATH$            = D$
  133.       DISK.FOR.DOS$              = D$
  134.       DISKFULL.GO.OFFLINE        = TRUE
  135.       DNLD.SUB                   = 0
  136.       DOORS.AVAILABLE            = FALSE
  137.       DOORS.DEF$                 = D$ + "DOORS.DEF"
  138.       DOORS.TERMINAL.TYPE        = 8
  139.       DOSANSI                    = FALSE
  140.       DOS.VERSION                = 2
  141.       DOWNLOAD.DRIVES$           = DRV$ + DRV$
  142.       DOWNLOAD.TO.SUBDIR         = FALSE
  143.       DRIVE.FOR.BULLETINS$       = D$
  144.       DRIVE.FOR.HELP.FILES$      = D$
  145.       DTR.DROP.DELAY             = 3
  146.       DUMB.MODEM                 = FALSE
  147.       ECHOER$                    = "R"
  148.       EMPHASIZE.OFF.DEF$         = "[27]" + "[0;40;33m"
  149.       EMPHASIZE.ON.DEF$          = "[27]" + "[1;41;37m"
  150.       END.OFFICE.HOURS           = 2200
  151.       ENFORCE.UPLOAD.DOWNLOAD.RATIOS = FALSE
  152.       EPILOG$                    = D$ + "EPILOG.DEF"
  153.       ESCAPE.INSECURE            = FALSE
  154.       EXPERT.USER                = 0
  155.       EXPIRED.SECURITY           = DEFAULT.SECURITY.LEVEL
  156.       EXTENDED.LOGGING           = FALSE
  157.       EXTENSION.LIST$            = "ZIP"
  158.       FAST.FILE.LIST$            = D$ + "FIDX.DEF"
  159.       FAST.FILE.LOCATOR$         = D$ + "LIDX.DEF"
  160.       FC                         = 5
  161.       FG                         = 7
  162.       FG.1.DEF$                  = "Bright Green"
  163.       FG.2.DEF$                  = "Bright Yellow"
  164.       FG.3.DEF$                  = "Bright Purple"
  165.       FG.4.DEF$                  = "Bright Cyan"
  166.       FILE.COMMANDS.DEFAULTS$    = "DGLNPSUV"
  167.       FILE.COMMANDS$             = FILE.COMMANDS.DEFAULTS$
  168.       FILE.NOTIFY                = FALSE
  169.       FILES.FUNCTION$(1,1)       = "D)ownload a file      "
  170.       FILES.FUNCTION$(2,1)       = "G)oodbye              "
  171.       FILES.FUNCTION$(3,1)       = "L)ist file directory  "
  172.       FILES.FUNCTION$(4,1)       = "N)ew file search      "
  173.       FILES.FUNCTION$(5,1)       = "P)ersonal files       "
  174.       FILES.FUNCTION$(6,1)       = "S)earch files         "
  175.       FILES.FUNCTION$(7,1)       = "U)pload a file        "
  176.       FILES.FUNCTION$(8,1)       = "V)erbose archive list "
  177.       FILES.FUNCTION$(1,2)       = "D"
  178.       FILES.FUNCTION$(2,2)       = "G"
  179.       FILES.FUNCTION$(3,2)       = "L"
  180.       FILES.FUNCTION$(4,2)       = "N"
  181.       FILES.FUNCTION$(5,2)       = "P"
  182.       FILES.FUNCTION$(6,2)       = "S"
  183.       FILES.FUNCTION$(7,2)       = "U"
  184.       FILES.FUNCTION$(8,2)       = "V"
  185.       FILESEC.FILE$              = D$ + "FILESEC"
  186.       FIRST.NAME.PROMPT$         = "FIRST name"
  187.       FOSSIL                     = 0
  188.       GB                         = FC
  189.       GLOBAL.COMMANDS.DEFAULTS$  = "H?QX"
  190.       GLOBAL.COMMANDS$           = GLOBAL.COMMANDS.DEFAULTS$
  191.       GLOBAL.FUNCTION$(1,1)      = "H)elp on-line           "
  192.       GLOBAL.FUNCTION$(2,1)      = "?)help on-line (=H)     "
  193.       GLOBAL.FUNCTION$(3,1)      = "Q)uit this part         "
  194.       GLOBAL.FUNCTION$(4,1)      = "X)Expert toggle on/off  "
  195.       GLOBAL.FUNCTION$(1,2)      = "H"
  196.       GLOBAL.FUNCTION$(2,2)      = "?"
  197.       GLOBAL.FUNCTION$(3,2)      = "Q"
  198.       GLOBAL.FUNCTION$(4,2)      = "X"
  199.       GO.TO.SHELL                = TRUE
  200.       HELP$(3)                   = "HELP03"
  201.       HELP$(4)                   = "HELP04"
  202.       HELP$(7)                   = "HELP07"
  203.       HELP$(9)                   = "HELP09"
  204.       HELP.EXTENSION$            = "HLP"
  205.       HELP.FILE.PREFIX$          = "HELP0"
  206.       HELP.PATH$                 = D$
  207.       HOST.ECHO.OFF$             = ""
  208.       HOST.ECHO.ON$              = ""
  209.       IB                         = 0
  210.       KEEP.INIT.BAUD             = FALSE
  211.       KEEP.TIME.CREDITS          = FALSE
  212.       LAST.NAME.PROMPT$          = "LAST name"
  213.       LEN.HASH                   = 31
  214.       LEN.INDIV                  = 0
  215.       LIBRARY.ARCHIVE.PATH$        = D$
  216.       LIBRARY.ARCHIVE.PROGRAM$     = "ARCA "
  217.       LIBRARY.COMMANDS.DEFAULTS$   = "ACDGLSV"
  218.       LIBRARY.COMMANDS$            = LIBRARY.COMMANDS.DEFAULTS$
  219.       LIBRARY.DRIVE$               = ""
  220.       LIBRARY.MAX.DISK             = 705
  221.       LIBRARY.MAX.DIRECTORY        = 7
  222.       LIBRARY.MAX.SUBDIR           = 100
  223.       LIBRARY.SUBDIR.PREFIX$       = "DISK"
  224.       LIBRARY.DIRECTORY.PATH$      = D$
  225.       LIBRARY.DIRECTORY.EXTENTION$ = "CDR"
  226.       LIBRARY.FUNCTION$(1,1)       = "A)rchive a Library disk  "
  227.       LIBRARY.FUNCTION$(2,1)       = "C)hange Library disk     "
  228.       LIBRARY.FUNCTION$(3,1)       = "D)ownload a file         "
  229.       LIBRARY.FUNCTION$(4,1)       = "G)oodbye                 "
  230.       LIBRARY.FUNCTION$(5,1)       = "L)ist a file directory   "
  231.       LIBRARY.FUNCTION$(6,1)       = "S)earch files            "
  232.       LIBRARY.FUNCTION$(7,1)       = "V)erbose archive list    "
  233.       LIBRARY.FUNCTION$(1,2)       = "A"
  234.       LIBRARY.FUNCTION$(2,2)       = "C"
  235.       LIBRARY.FUNCTION$(3,2)       = "D"
  236.       LIBRARY.FUNCTION$(4,2)       = "G"
  237.       LIBRARY.FUNCTION$(5,2)       = "L"
  238.       LIBRARY.FUNCTION$(6,2)       = "S"
  239.       LIBRARY.FUNCTION$(7,2)       = "V"
  240.       LIBRARY.WORK.DISK.PATH$      = D$
  241.       LIMIT.SEARCH.TO.FMS        = FALSE
  242.       LOGON.MAIL.LEVEL$          = "A"
  243.       LSB                        = 1016
  244. * REPLACING old line(s) by new
  245. 61755 SUB CHKPERSDIR (PDIR$, DESC.LEN, NAMELEN) STATIC
  246.       CLS
  247.       LOCATE 5, 21
  248.       PRINT "Checking Personal Directory "; PDIR$;
  249.       NLINES = 0
  250.       LOCATE 7, 27
  251.       PRINT "Line #";
  252.       LOCATE 9, 20
  253.       COLOR 0, 7
  254.       PRINT " Last Line with an ERROR ";
  255.       LOCATE 12, 28
  256.       PRINT " Last ERROR ";
  257.       COLOR 7, 0
  258.       GO.ON = -1
  259.       CALL FINDFILE(PDIR$, FEXISTS)
  260.       IF NOT FEXISTS THEN _
  261.          LOCATE 6, 25: _
  262.          PRINT "File not found"; : _
  263.          GOTO 61775
  264.       LINELEN = 34 + DESC.LEN + NAMELEN
  265.       OPEN PDIR$ FOR INPUT AS #2
  266.       WHILE NOT EOF(2) AND GO.ON
  267.          NLINES = NLINES + 1
  268.          LINE INPUT #2, A$
  269.          L = LEN(A$)
  270.          LOCATE 7, 36
  271.          PRINT NLINES;
  272.          IF L > LINELEN THEN _
  273.             CALL HANDERR(A$, NLINES, "Too LONG: has" + STR$(L) + " chars but should have" + STR$(LINELEN), GO.ON) : _
  274.             IF NOT GO.ON THEN _
  275.                GOTO 61770
  276.          IF L < LINELEN THEN _
  277.             CALL HANDERR(A$, NLINES, "Too SHORT: has" + STR$(L) + " chars but should have" + STR$(LINELEN), GO.ON) : _
  278.                IF NOT GO.ON THEN _
  279.                   GOTO 61770
  280. * ------[ first line different ]------
  281.          IF L > 30 AND (LEFT$(A$,1) <> " ") THEN _                   ' DA102101
  282.             X$ = MID$(A$, 24, 2) + MID$(A$, 27, 2) + MID$(A$, 30, 2) : _
  283.             I = 1 : _
  284.             WHILE I < 7 AND INSTR("0123456789", MID$(X$, I, 1)) > 0 : _
  285.                I = I + 1 : _
  286.             WEND : _
  287.             IF I < 7 THEN _
  288.                CALL HANDERR(A$, NLINES, "INVALID CHARACTER <" + MID$(X$, I, 1) + "> in date field", GO.ON) : _
  289.                IF NOT GO.ON THEN _
  290.                   GOTO 61770
  291.            IF L = LINELEN THEN _
  292.               X$ = RIGHT$(A$, 1) : _
  293.               IF INSTR("*!", X$) = 0 THEN _
  294.                  CALL HANDERR(A$, NLINES, "Last char on line should be * or ! but found <" + X$ + ">", GO.ON) : _
  295.                  IF NOT GO.ON THEN  _
  296.                     GOTO 61770
  297.            IF L = LINELEN THEN _
  298.               X$ = MID$(A$, L - NAMELEN, LINELEN) : _
  299.               IF LEFT$(X$, 1) = " " THEN _
  300.                  IF INSTR("0123456789-", MID$(X$, 2, 1)) = 0 THEN _
  301.                     CALL HANDERR(A$, NLINES, "Name field at col" + STR$(L - NAMELEN) + " has <" + LEFT$(X$, 1) + ">, needs non-blank or blank+number", GO.ON) : _
  302.                     IF NOT GO.ON THEN _
  303.                        GOTO 61770
  304.